using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;
using Praxis.Entities;

namespace Praxis.Repository.Mapping
{
    public class EQUIPOMap : EntityTypeConfiguration<EQUIPO>
    {
        public EQUIPOMap()
        {
            // Primary Key
            this.HasKey(t => t.Codigo);

            // Properties
            this.Property(t => t.Tipo)
                .HasMaxLength(20);

            this.Property(t => t.Serie)
                .HasMaxLength(50);

            this.Property(t => t.Nombre)
                .HasMaxLength(50);

            this.Property(t => t.Marca)
                .HasMaxLength(50);

            this.Property(t => t.Modelo)
                .HasMaxLength(50);

            this.Property(t => t.Color)
                .HasMaxLength(50);

            this.Property(t => t.ModeloMotor)
                .HasMaxLength(50);

            this.Property(t => t.SerieMotor)
                .HasMaxLength(50);

            this.Property(t => t.AnioFabricacion)
                .HasMaxLength(4);

            // Table & Column Mappings
            this.ToTable("EQUIPO");
            this.Property(t => t.Codigo).HasColumnName("Codigo");
            this.Property(t => t.Tipo).HasColumnName("Tipo");
            this.Property(t => t.Serie).HasColumnName("Serie");
            this.Property(t => t.Nombre).HasColumnName("Nombre");
            this.Property(t => t.Marca).HasColumnName("Marca");
            this.Property(t => t.Modelo).HasColumnName("Modelo");
            this.Property(t => t.Color).HasColumnName("Color");
            this.Property(t => t.ModeloMotor).HasColumnName("ModeloMotor");
            this.Property(t => t.SerieMotor).HasColumnName("SerieMotor");
            this.Property(t => t.FechaCompra).HasColumnName("FechaCompra");
            this.Property(t => t.AnioFabricacion).HasColumnName("AnioFabricacion");
            this.Property(t => t.PrecioPorHora).HasColumnName("PrecioPorHora");
            this.Property(t => t.Disponible).HasColumnName("Disponible");
            this.Property(t => t.TotalHorasTrabajadas).HasColumnName("TotalHorasTrabajadas");
            this.Property(t => t.HorasDisponibles).HasColumnName("HorasDisponibles");
            this.Property(t => t.HorasFaltantes).HasColumnName("HorasFaltantes");
        }
    }
}
